#!/usr/bin/python
# _*_ coding: utf8 _*_
#Created: 2010. 7. 5.
'''
사용법:    a = CGetCurrency()
           #가져온 값
           a.m_CurrencyUsd, a.m_CurrencyUsdChange
           
           #트위터로 전송
           a.SendTextToTwitter()
           
           #얻어오는 값을 추가하려면 stStandardOut, stChangeOut 배열에서 꺼내서 쓰면 됨.
'''

##GLOBALS
g_CurrencyXmlUrl = 'http://www.naver.com/include/timesquare/widget/exchange.xml'

##IMPORTS
import urllib2
from BeautifulSoup import BeautifulSoup
import MoPostTwitter

class CGetCurrency():
    #USD 값을 저장하는 클래스 멤버변수. 외부에서 접근해서 값을 참조할 수 있음.
    m_CurrencyUsd = ''
    m_CurrencyUsdChange = ''
  
    
    #__init__
    def __init__(self):
        pass
        self.GetCurrencyData()
    
    #네이버 환율 xml에서 가져와서 배열로 저장 
    def GetCurrencyData(self):
        global g_CurrencyXmlUrl
        
        try:
            stContents = urllib2.urlopen(g_CurrencyXmlUrl).read()
        except:
            return False
        
        #BS로 파싱.
        soup = BeautifulSoup(stContents)
        soupStandard = soup('standard')
        soupChange = soup('change_val')
        
        #기준 환율과 변화량을 리스트로 저장
        stStandardOut = [str(a).replace('<standard>','').replace('</standard>','') for a in soupStandard]
        stChangeOut = [str(a).replace('<change_val>','').replace('</change_val>','') for a in soupChange]
        
        #글로벌 변수로 저장
        self.m_CurrencyUsd = stStandardOut[0]
        self.m_CurrencyUsdChange = stChangeOut[0]
        
        return True

    #가져온 데이터를 문자열로 만들어서 트위터로 전송
    def SendTextToTwitter(self):
        stTwitterText = u"[SidWebApp] " + \
                        u"현재 원달러 환율 : 1$ = " + self.m_CurrencyUsd + \
                        u"원 (" + self.m_CurrencyUsdChange + u")" + \
                        u" [출처:네이버]"
        
        #트위터로 보낼 객체 생성
        objTwitter = MoPostTwitter.CPostTwitter()
        
        try:
            objTwitter.WriteText(stTwitterText)
        except:
            return False

        return True


def main():
    pass
    run = CGetCurrency()
    #print run.m_CurrencyUsd, run.m_CurrencyUsdChange
    run.SendTextToTwitter()



if __name__ == "__main__":
    main()
